面向时空大数据的开放式地理信息脚本引擎GIScript:关键技术解读
文章摘自《超图通讯》第50期
原文标题:《面向时空大数据的开放式地理信息脚本引擎设计与实现》
作者:王少华 钟耳顺 王尔琪 蔡文文
李少华 黄骞
时空大数据作为未来世界的“石油”,蕴含着巨大的行业价值。各行业对时空大数据的存储、计算和分析等高性能处理需求不断增强。诸如Python等的动态脚本语言可实现数据的探索式分析,模型库的构建、跨平台应用和多系统快速集成,可用于时空大数据的处理和地理空间分析。国内时空大数据的处理分析缺乏通用的框架和开放地理信息脚本核心引擎。开放地理信息处理脚本系统GIScript基于云GIS框架,采用分布式并行模式运行,兼容Windows、Linux等操作系统,支持.Net、Python和其他语言的灵活扩展,适用于时空大数据的地理空间分析。
今天分享上篇《面向时空大数据的开放式地理信息脚本引擎GIScript:关键技术解读》,敬请期待下篇《面向时空大数据的开放式地理信息脚本引擎GIScript:海量遥感影像数据处理应用》!
当今社会,诸如快速发展地理信息获取技术,不断提高的全球对地观测能力,持续涌现的海量位置信息等,使得时空大数据呈指数式增长。时空大数据体量大、类型多、更新快 ,对其的处理要求很高的计算能力。作为未来世界的“石油”,时空大数据隐含着巨大的社会、经济和科研价值。为充分挖掘大数据背后的价值,各个行业和领域对时空大数据的存储、计算和分析等高性能处理需求不断增强。
时空大数据的处理分析可借助云计算平台实现数据的存储、处理、提取和过滤,借助地理信息系统相关技术实现数据的空间分析、条件查询、地图生产和可视化展示等GIS功能。常用开源的云计算平台及其关键技术有Apache基金会的Hadoop项目,美国加州伯克利大学的Spark项目,Twitter开发的实时处理系统Storm,以及NVIDIA公司首先提出的GPU技术等。GIS关键技术较多,比如跨平台GIS内核、云端一体化技术、二三维一体化技术、移动GIS技术等。不同的GIS技术可助于用户在不同平台、不同终端和不同操作系统上快速构建专业丰富的GIS应用。
互联网、云计算、物联网等领域涌现的大量多样化应用,对GIS技术的灵活性、易用性和通用性提出了更高的要求,即GIS技术应该能够为不懂GIS的普通大众和行业应用所使用。借助完善的GIS技术,消除GIS与其他主流IT产业之间、地理信息专业人士与普通用户之间、不同平台下的不同地理信息软件之间、多源异构的复杂空间数据之间的鸿沟。采用开源软件开发运维模式,研究面向时空大数据的开放脚本引擎,可支持大数据时代的地理信息软件向兼容、通用、开放和敏捷方向发展,促进传统地理信息软件转型为全新的开源模式。
脚本有助于实现探索式数据分析、模型库的构建、跨平台应用和多系统快速集成。以Python语言为例,用户可以通过解释和动态输入Python编程语言,在交互式环境中快速地创建脚本原型并进行测试。诸如Python等动态编程语言功能强大,基于Python不仅可实现大量新型GIS轻应用,弥补企业级GIS“重型坦克”式兼容性、通用性、开放性和敏捷性上不足,也可编写大型应用程序,用于时空大数据的处理与地理空间分析。
目前,国内时空大数据的处理分析缺乏通用的框架和开放式脚本核心引擎。因此,非常有必要研究实现面向时空大数据处理分析的通用框架,重点研究开放式脚本的核心引擎技术体系,以及时空大数据的并发调度策略与方法。通过上述研究,最终形成一套兼容、通用、开放、敏捷的开放式地理信息处理脚本引擎。
开放式地理信息处理脚本引擎(GIScript)是北京超图软件股份有限公司基于脚本语言研发的开放式地理信息处理工具集,是地理数据导入、导出和时空分析的高效工具集。其代码开源,功能全,可集成商业软件作为处理引擎。
开放式地理信息脚本引擎关键技术
当前的地理信息应用,诸如跨领域集成、跨平台组件调用、科学研究中的快速模型验证、大规模跨平台分布式应用中的复杂服务链管理执行等,都急需的时空大数据地理空间分析。
开放式脚本引擎关键技术主要包括:研究地理信息处理开放脚本系统,即GIScript,涉及GIScript在高性能云GIS总体技术架构中的地位和作用,与其他模块的关系与接口,以及时空大数据应用中的分布式执行调度模型等关键技术;研究高性能跨平台GIS引擎关键技术,主要包括GIS数据处理引擎、GIS可视化引擎、GIS并行处理引擎等关键技术;GIScript的封装技术,;研究基于分布式技术的GIS并行计算框架关键技术,涉及面向数据划分、计算任务划分等并行调度技术与方法,实现并行调度处理框架,并进行实验验证。
GIScript技术路线
GIScript在高性能云GIS技术中是非常重要的支撑技术,发挥着企业级跨平台集成语言和分布式并行调度的双重重要作用,其构建面向计算、存储和通信的虚拟化管理的高性能计算基础设施基础之上,与面向可扩展的存储与数据交换的开发地理信息可扩展协议标准相配合、共同支撑面向云端一体化应用的平台软件体系(图1)。
图1 高性能云GIS框架下GIScript
GIScript在高性能云GIS环境下采用分布式运行模式,其具有跨平台兼容、云端通用、灵活开放等优点,可满足包括气象、国土等GIS应用领域中高性能、动态灵活的业务需求,通过将GIScript调试器中编写验证的执行代码经企业服务总线(ESB)分发到自动化任务调度执行节点和不同平台(Linux、Windows、Unix及国产操作系统等)的工作节点上,可实现时空大数据分布式处理服务编排、工作流执行与监控。
2
高性能跨平台GIS引擎关键技术
基于地理信息系统关键技术的行业应用不仅要求地理信息跨平台(Windows、Linux等传统操作系统、麒麟、凝思和乌邦图麒麟等国产操作系统和Android、iOS等移动操作系统)兼容,更要求能够进行支持高性能地理信息计算。
高性能GIS体系架构主要分为三类(见图2):第一类是基于C++组件实现的MPI/OpenMP的国防卫星、安全应用等;第二类是基于Java组件的Hadoop/Spark实现的大规模处理调度应用;第三类则是基于Python组件开发的分布式脚本运行的研究型应用的探索式编程。从时空大数据的灵活多样、探索式编程来讲,基于Python组件的高性能GIS是理想选择。
图2 高性能GIS体系架构
为解决这一问题,研究并实现了基于Python语言的语言规范(兼容R语言),研制了一套分布式调度执行引擎,实现了运行时和交互式的命令界面、基于消息总线的分布式调度框架。基于CPython、JPython、IronPython等跨平台Python实现构建针对C/C++ STL、Java与.Net组件的支持环境。基于rpy2库实现利用R语言的地理信息脚本语言。在实现中采用CPython和JPython分别支持C/STL基础类库与Java类库。利用rpy2支持在Python脚本中调用嵌入式R进程。基于分布式调度框架支持其他语言与类库。在此基础上构建跨平台的基础地理算子框架,即实现了完整GIScript。
不仅可以保持底层C/STL C++所拥有的高性能特征,支持时空大数据处理,而且可以兼容Windows、Linux等不同的操作系统,同时支持.Net、R和其他语言的灵活扩展,解决了高性能与跨平台难以两全的难题。
3
开放式地理信息脚本引擎封装技术
GIScript基于Python开发,无需特殊的安装过程。它可与很多工具联合使用,比如支持R、numPy等语言等。GIScript让GIS技术不再是专业人士的专用工具,让每个人都可以轻松使用。目前的最新版本是GIScript2015,它完全采用SIP进行封装,与Qt和PyQt具有较好的相容性,接口与C++保持一致,减少了封装维护资源,增加了易用性。开放式地理信息脚本引擎不仅开放其源码工程,还将开放其封装过程的技术指南和需要的前置软件的安装、配置方法(见图3)。
图3 GIScript封装流程图
由于GIScript调用的是标准实现的共相式GIS内核(即标准C++实现的GIS内核),由于底层内核就有的跨平台、高性能等特征,GIScript项目工程也具有跨平台和高效特征。GIScript工程代码开源,任何人可以在其网站上找到相应的代码和操作说明(见图4)。
图4 GIScript工程图
4
基于分布式技术的GIS并行计算框架关键技术
高性能计算是时空大数据处理分析的有效手段,GIScript提供GIS并行处理器模块(Geographic Information ParallelProcessor,GIPP),是基于服务总线的分布式、高可伸缩的时空大数据处理分析关键技术(图5)。
图5 基于分布式技术的GIS并行计算框架图
面向时空大数据处理分析的高性能计算方法,可以在云计算平台,比如Hadoop中实现GIS的并行,这样做需要大规模改造传统GIS的存储模型,对算法进行分布式重构,技术风险较大,耗时较长(图5蓝色路线);也可以在C++内核的基础上,封装纯C++的函数库,将其与HPC等高性能计算机进行测试对接,支持OpenMP等并行框架。这样做,虽然有望借助高性能计算解决大规模空间分析问题,但技术风险大,且难以对接服务型的产业主流(图5红色路线)。
基于基础内核+Python扩展,构建简单并行数据处理架构GPP-Python,可以支持单机并行,单机之上利用服务总线技术形成高可伸缩的Master-Worker架构,支持多机并行,并采用领域接口对接MPI/OpenMPI与服务总线(图5绿色路线)。这将充分利用现有GIS技术基础与并行、分布式计算框架基础,可靠性高,复用性好。具体研究内容有:在GIScript中扩展GIPP模块,研究基于
地理信息网格的数据切分分布技术、基于服务总线的“MonitorWorker”模型的分布式可伸缩并行调度技术、GIScript/GIPP与OpenMP、MPI等主流并行框架基于消息总线的集成技术、基于统一地理信息引擎的跨平台地理计算分布式执行技术。
本文参考文献及相关说明详见第50期《超图通讯》
欢迎转载~
|近期热读|